<template>
    <div class="wrapper">
      <!-- header部分 -->
      <header>
        <p>商家信息</p>
      </header>
      <!-- 商家logo部分 -->
      <div class="business-logo">
        <img :src="business.businessImg">
      </div>
      <!-- 商家信息部分 -->
      <div class="business-info">
        <h1>{{ business.businessName }}</h1>
        <p>&#165;{{ business.starPrice }}起送 &#165;{{ business.deliveryPrice }}配送</p>
        <p>{{ business.businessExplain }}</p>
      </div>
      <!-- 食品列表部分 -->
      <ul class="food">
        <li v-for="(item, index) in foodArr" :key="index">
          <div class="food-left">
            <img :src="item.foodImg">
            <div class="food-left-info">
              <h3>{{ item.foodName }}</h3>
              <p>{{ item.foodExplain }}</p>
              <p>&#165;{{ item.foodPrice }}</p>
            </div>
          </div>
          <div class="food-right">
            <div>
              <span class="icon" @click="minus(index)" v-show="item.quantity > 0">−</span> <!-- 减号 -->
            </div>
            <p><span v-show="item.quantity > 0">{{ item.quantity }}</span></p>
            <div>
              <span class="icon" @click="add(index)">＋</span> <!-- 加号 -->
            </div>
          </div>
        </li>
      </ul>
      <!-- 购物车部分 -->
      <div class="cart">
        <div class="cart-left">
          <div class="cart-left-icon" :style="totalQuantity == 0 ? 'background-color:#505051;' : 'background-color:#3190E8;'">
            <i class="fa fa-shopping-cart"></i>
            <div class="cart-left-icon-quantity" v-show="totalQuantity != 0">{{ totalQuantity }}</div>
          </div>
          <div class="cart-left-info">
            <p>&#165;{{ totalPrice }}</p>
            <p>另需配送费{{ business.deliveryPrice }}元</p>
          </div>
        </div>
        <div class="cart-right">
          <!-- 不够起送费 -->
          <div class="cart-right-item" v-show="totalSettle < business.starPrice" style="background-color: #535356; cursor: default;">
            &#165;{{ business.starPrice }}起送
          </div>
          <!-- 达到起送费 -->
          <div class="cart-right-item" @click="toOrder" v-show="totalSettle >= business.starPrice">
            去结算
          </div>
        </div>
      </div>
    </div>
  </template>

  <script>
    import { ref, reactive, computed } from 'vue';
    import { useRouter } from 'vue-router'; // 引入 useRouter

    export default {
      name: 'BusinessInfo',
      setup() {
        const router = useRouter(); // 获取 router 实例

        // 商家信息（自行填充）
        const business = reactive({
          businessImg: 'src/assets/img/sj01.png', // 商家Logo图片URL
          businessName: '东北水饺', // 商家名称
          starPrice: 20, // 起送价
          deliveryPrice: 5, // 配送费
          businessExplain: '各种新鲜水饺，现做现卖' // 商家介绍
        });

        // 食品列表（自行填充）
        const foodArr = reactive([
          {
            foodImg: 'src/assets/img/sp01.png', // 食品图片URL
            foodName: '三鲜水饺', // 食品名称
            foodExplain: '新鲜猪肉', // 食品介绍
            foodPrice: 15, // 食品价格
            quantity: 0 // 初始数量
          },
          {
            foodImg: 'src/assets/img/sp07.png', // 食品图片URL
            foodName: '牛肉水饺', // 食品名称
            foodExplain: '新鲜牛肉', // 食品介绍
            foodPrice: 20, // 食品价格
            quantity: 0 // 初始数量
          },
          {
            foodImg: 'src/assets/img/sp05.png', // 食品图片URL
            foodName: '羊肉水饺', // 食品名称
            foodExplain: '新鲜羊肉', // 食品介绍
            foodPrice: 15, // 食品价格
            quantity: 0 // 初始数量
          },
          {
            foodImg: 'src/assets/img/sp02.png', // 食品图片URL
            foodName: '三鲜水饺', // 食品名称
            foodExplain: '新鲜猪肉', // 食品介绍
            foodPrice: 15, // 食品价格
            quantity: 0 // 初始数量
          },
          {
            foodImg: 'src/assets/img/sp03.png', // 食品图片URL
            foodName: '玉米猪肉水饺', // 食品名称
            foodExplain: '新鲜猪肉', // 食品介绍
            foodPrice: 13, // 食品价格
            quantity: 0 // 初始数量
          },
          {
            foodImg: 'src/assets/img/sp11.png',
            foodName: '麻婆豆腐',
            foodExplain: '正宗川菜',
            foodPrice: 8,
            quantity: 0
          }
        ]);

        // 计算总价格
        const totalPrice = computed(() => {
          return foodArr.reduce((total, item) => total + item.foodPrice * item.quantity, 0);
        });

        // 计算总数量
        const totalQuantity = computed(() => {
          return foodArr.reduce((quantity, item) => quantity + item.quantity, 0);
        });

        // 计算结算总价格
        const totalSettle = computed(() => {
          return totalPrice.value + business.deliveryPrice;
        });

        // 增加食品数量
        const add = (index) => {
          foodArr[index].quantity++;
        };

        // 减少食品数量
        const minus = (index) => {
          if (foodArr[index].quantity > 0) {
            foodArr[index].quantity--;
          }
        };

        // 去结算
        const toOrder = () => {
          try {
            router.push({ name: 'orders' }); // 跳转到 Orders.vue 界面
          } catch (error) {
            console.error('跳转失败:', error);
          }
        };

        return {
          business,
          foodArr,
          totalPrice,
          totalQuantity,
          totalSettle,
          add,
          minus,
          toOrder
        };
      }
    };
  </script>


<style scoped>
/* 样式部分保持不变 */
/****************** 总容器 ******************/
.wrapper {
  width: 100%;
  height: 100%;
}

/****************** header部分 ******************/
.wrapper header {
  width: 100%;
  height: 12vw;
  background-color: #0097FF;
  color: #fff;
  font-size: 4.8vw;
  position: fixed;
  left: 0;
  top: 0;
  z-index: 1000;
  display: flex;
  justify-content: center;
  align-items: center;
}

/****************** 商家logo部分 ******************/
.wrapper .business-logo {
  width: 100%;
  height: 35vw;
  /*使用上外边距避开header部分*/
  margin-top: 12vw;
  display: flex;
  justify-content: center;
  align-items: center;
}

.wrapper .business-logo img {
  width: 40vw;
  height: 30vw;
  border-radius: 5px;
}

/****************** 商家信息部分 ******************/
.wrapper .business-info {
  width: 100%;
  height: 20vw;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.wrapper .business-info h1 {
  font-size: 5vw;
}

.wrapper .business-info p {
  font-size: 3vw;
  color: #666;
  margin-top: 1vw;
}

/****************** 食品列表部分 ******************/
.wrapper .food {
  width: 100%;
  /*使用下外边距避开footer部分*/
  margin-bottom: 14vw;
}

.wrapper .food li {
  width: 100%;
  box-sizing: border-box;
  padding: 2.5vw;
  user-select: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.wrapper .food li .food-left {
  display: flex;
  align-items: center;
}

.wrapper .food li .food-left img {
  width: 20vw;
  height: 20vw;
}

.wrapper .food li .food-left .food-left-info {
  margin-left: 3vw;
}

.wrapper .food li .food-left .food-left-info h3 {
  font-size: 3.8vw;
  color: #555;
}

.wrapper .food li .food-left .food-left-info p {
  font-size: 3vw;
  color: #888;
  margin-top: 2vw;
}

.wrapper .food li .food-right {
  width: 16vw;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.wrapper .food li .food-right .icon {
  font-size: 5.5vw;
  color: #0097EF;
  cursor: pointer;
  user-select: none;
}

.wrapper .food li .food-right .icon:hover {
  color: #0077CC;
}

.wrapper .food li .food-right p {
  font-size: 3.6vw;
  color: #333;
}

/****************** 购物车部分 ******************/
.wrapper .cart {
  width: 100%;
  height: 14vw;
  position: fixed;
  left: 0;
  bottom: 0;
  display: flex;
}

.wrapper .cart .cart-left {
  flex: 2;
  background-color: #505051;
  display: flex;
}

.wrapper .cart .cart-left .cart-left-icon {
  width: 16vw;
  height: 16vw;
  box-sizing: border-box;
  border: solid 1.6vw #444;
  border-radius: 8vw;
  background-color: #3190E8;
  font-size: 7vw;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-top: -4vw;
  margin-left: 3vw;
  position: relative;
}

.wrapper .cart .cart-left .cart-left-icon-quantity {
  width: 5vw;
  height: 5vw;
  border-radius: 2.5vw;
  background-color: red;
  color: #fff;
  font-size: 3.6vw;
  display: flex;
  justify-content: center;
  align-items: center;
  position: absolute;
  right: -1.5vw;
  top: -1.5vw;
}

.wrapper .cart .cart-left .cart-left-info p:first-child {
  font-size: 4.5vw;
  color: #fff;
  margin-top: 1vw;
}

.wrapper .cart .cart-left .cart-left-info p:last-child {
  font-size: 2.8vw;
  color: #AAA;
}

.wrapper .cart .cart-right {
  flex: 1;
}

/*达到起送费时的样式*/
.wrapper .cart .cart-right .cart-right-item {
  width: 100%;
  height: 100%;
  background-color: #38CA73;
  color: #fff;
  font-size: 4.5vw;
  font-weight: 700;
  user-select: none;
  cursor: pointer;
  display: flex;
  justify-content: center;
  align-items: center;
}

/*不够起送费时的样式（只有背景色和鼠标样式的区别）*/
/*
.wrapper .cart .cart-right .cart-right-item{
  width: 100%;
  height: 100%;
  background-color: #535356;
  color: #fff;
  font-size: 4.5vw;
  font-weight: 700;
  user-select: none;

  display: flex;
  justify-content: center;
  align-items: center;
}
*/
</style>